//
// Description: 5801. 消灭怪物的最大数量
// Created by Loading on 2021/7/4.
//

#include <bits/stdc++.h>

using namespace std;

int eliminateMaximum(vector<int> &dist, vector<int> &speed) {
    //怪物到达所需要的时间
    /* 一开始使用了 int 类型的数组，且在赋值时考虑了上取整情况，实则没有必要，使用 double 类型避免此问题 */
    vector<double> time;
    for (int i = 0; i < dist.size(); ++i) {
        time.emplace_back(dist[i] * 1.0 / speed[i]);
    }

    sort(time.begin(), time.end());
    int res = 0;
    for (int i = 0; i < time.size(); ++i) {
        if (time[i] > i) {//可以在怪物到达之前消灭掉
            res++;
        } else {//怪物到达，游戏结束
            break;
        }
    }

    return res;
}

int main() {
    vector<int> dist = {5, 4, 3, 3, 3};
    vector<int> speed = {1, 1, 5, 3, 1};

    cout << eliminateMaximum(dist, speed) << endl;
}